import { createStore } from "vuex";
import vuexPre from 'vuex-persistedstate'

export default createStore({
  state: {
    cartList: [], //存放添加购物车的商品
  },
  getters: {
    // 计算总价格
    getTotal(state){
        let total = 0
        state.cartList.forEach(item=>{
            if(item.status){
                total +=item.num*item.price
            }
        })
        return total

    },
    // 计算总数
    getSum(state){
        let sum = 0
        state.cartList.forEach(item=>{
            if(item.status){
                sum +=item.num
            }
        })
        return sum

    },

  },
  mutations: {
    // 判断是否是相同商品   通过唯一的_id来判断
    addCart(state, obj) {
      // console.log('1');
      let len = state.cartList.find((item) => item._id == obj._id);
      console.log(len);
      if (len) {
        len.num++
        return
      } 
        //   给obj里面添加一个num的字段
        obj.num = 1;
        //    给obj添加一个状态，表示是否选中
        obj.status = false;
        state.cartList.push(obj);

        console.log(state.cartList);
      
    },
    // 点击全选触发的方法
    checkAll(state,all){
        console.log(all);
        state.cartList.forEach(item=>{
            item.status = all
        })


    },
    // 删除
    del(state,index){
        state.cartList.splice(index,1)

    },
    // -
    minus(state,index){
        state.cartList[index].num--
        // 判断  
        if(state.cartList[index].num<=1){
            state.cartList[index].num = 1

        }
    },
    plus(state,index){
        state.cartList[index].num++
    },
    // 删除所选
    removeSelect(state){
        state.cartList=state.cartList.filter(item=>item.status == false)

    }
  },
  actions: {},
  modules: {},
  plugins:[vuexPre()]
});
